/**
 * 
 * 广州锐鹏计算机科技有限公司（www.ruipengkj.com）
 * 
 * 
 * Copyright (c) 2011-2012 RUIPENGKJ.Co.Ltd. All rights reserved.
 * 
 * */
package com.ruipengkj.commons.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 说明：
 * 输入字符正则判断
 * @Author：李智深
 * @Date：2012-03-14
 */
public class MatcherFormatUtil {

	/**IP4正则格式*/
//	public static final String IP4_SCHEME="^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$";
	public static final String IP4_SCHEME="^(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2}).(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2}).(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2}).(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2})$";
	
	// 检查ip格式
	public static boolean checkIP4Scheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile(IP4_SCHEME);
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return true;
		}
		return false;
	}
		
	// 检查邮件格式
	public static boolean checkEmailScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$");// 这里面是可以填写的字符，不在这里面的不可以填写
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return true;
		}
		return false;
	}

	// 检查标题格式
	public static String checkTitleScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("\\|\\@\\#\\$\\%\\&");
		Matcher matcher = pattern.matcher(input);
		if (matcher.find()) {
			return "不允许输入特殊符号";
		}
		return checkContentLengthScheme(input,6,25);
	}
	// 年份格式
	public static String checkYearsScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("[0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}");
		Matcher matcher = pattern.matcher(input);
		if (matcher.matches()) {
			return "OK";
		}
		return "年份格式不正确";
	}


	// 只可以输入0-9数字
	public static boolean MatcherNumberScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("[0-9]+");// 这里面是可以填写的字符，不在这里面的不可以填写
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return true;
		}
		return false;
	}
	// 只可以输入正浮点数
	public static boolean MatcherFloatScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("^([+-]?)\\d*\\.?\\d+$");// 这里面是可以填写的字符，不在这里面的不可以填写
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return true;
		}
		return false;
	}
	// 只可以输入价格
	public static boolean MatcherPriceScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("\\d{1,10}(\\.\\d{1,2})?$");// 这里面是可以填写的字符，不在这里面的不可以填写
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return true;
		}
		return false;
	}
	//手机号码
	public static boolean checkMobileScheme(String input) {
		// 检测是否包含非法字符
		Pattern pattern = Pattern.compile("^(130|131|132|133|134|135|136|137|138|139|150|151|152|153|155|156|158|159|180|182|183|185|186|187|188|189)[0-9]{8}$");// 这里面是可以填写的字符，不在这里面的不可以填写
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return true;
		}
		return false;
	}
	
	// 只可以输入数字-但不能为0
	public static String checkNumberNo0Scheme(String input) {
		Pattern pattern = Pattern.compile("^-?[1-9]\\d*$");// 这里面是可以填写的字符，不在这里面的不可以填写
		Matcher matcher = pattern.matcher(input);
		if(matcher.matches()){
			return "OK";
		}
		return "格式不正确，只可以输入整数，而不能为0";
	}

	//字符长度
	public static String checkContentLengthScheme(String input,int min,int max) {

		if(input.equals("")){
			return "";
		}else if (input.length() >= min && input.length() <= max) {
			return "OK";
		}
		return "输入字符数不正确";
	}
	
	
	//手机或者电话号码
//	public static String checkPhoneScheme(String input) {
//		// 检测是否包含非法字符
//		Pattern pattern = Pattern.compile("\\d{3}-\\d{8}|\\d{4}-\\d{7}");// 这里面是可以填写的字符，不在这里面的不可以填写
//		Matcher matcher = pattern.matcher(input);
//		if(matcher.matches()){
//			return "OK";
//		}
////		pattern=Pattern.compile("1\\d{10}");
//		pattern=Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
//		matcher=pattern.matcher(input);
//		if(matcher.matches()){
//			return "OK";
//		}
//		return "电话号码格式不正确，固话请以0755-8888888格式填写";
//	}
}
